import { ref, computed } from "vue";
import { getRandomInRange } from "@/utils/utils.js";
// 故障颜色状态
// export let color = ['gray','red','orange','green']
export let color = [
  "rgba(192, 192, 192, 1)",
  "rgba(255, 0, 0, 1)",
  "orange",
  "rgba(0, 128, 0, 1)",
];
// 齿轮
let clxyw = () => {
  return getRandomInRange(0, 200, 1);
};
let clxyy = () => {
  return getRandomInRange(0, 10, 2);
};
let clxz = () => {
  return getRandomInRange(0, 20, 2);
};
let clxd = () => {
  return getRandomInRange(0, 20, 2);
};
// 主机
let zjhyyl = () => {
  return getRandomInRange(0, 10, 2);
};
let zjlqsw = () => {
  return getRandomInRange(0, 150, 1);
};
let zjrywd = () => {
  return getRandomInRange(0, 150, 1);
};
let zjzs = () => {
  return getRandomInRange(0, 1000, 0);
};
let cyjzs = () => {
  return getRandomInRange(0, 1500);
};
let zjds = () => {
  return getRandomInRange(200, 700);
};
let zjry = () => {
  return getRandomInRange(200, 700);
};
let zyqds = () => {
  return getRandomInRange(200, 700);
};
let zyqry = () => {
  return getRandomInRange(200, 700);
};
let zyqzs = () => {
  return getRandomInRange(0, 50000);
};
let pqw = () => {
  return getRandomInRange(200, 700);
};
let clxds = () => {
  return getRandomInRange(200, 700);
};
let clxry = () => {
  return getRandomInRange(200, 700);
};
let wzwd = () => {
  return getRandomInRange(200, 700);
};
let wzzs = () => {
  return getRandomInRange(0, 20000);
};
let djjs = () => {
  return getRandomInRange(0, 35);
};
let zcwd = () => {
  return getRandomInRange(200, 700);
};
export const mockData = {
  cyjzs,
  zjds,
  zjry,
  zyqds,
  zyqry,
  zyqzs,
  pqw,
  clxds,
  clxry,
  wzwd,
  wzzs,
  djjs,
  clxyw,
  clxyy,
  clxz,
  clxd,
  zjhyyl,
  zjlqsw,
  zjrywd,
  zjzs,
  zcwd,
};

// 主机数据
export const engieDateEnums = ref({
  pqw: {
    point: 500,
  },
  zcwd: {
    point: 400,
  },
});
export let engieDate = ref([
  {
    cyjzs: getRandomInRange(0, 700),
    zjds: getRandomInRange(200, 650),
    zjry: getRandomInRange(200, 650),
    zyqds: getRandomInRange(200, 650),
    zyqry: getRandomInRange(200, 650),
    zyqzs: getRandomInRange(0, 700),
    pqw: [
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
    ],
    zcwd: [
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
    ],
    clxds: getRandomInRange(200, 650),
    clxry: getRandomInRange(200, 650),
    wzwd: getRandomInRange(200, 650),
    wzzs: getRandomInRange(0, 700),
    djjs: getRandomInRange(0, 28),
  },
  {
    cyjzs: getRandomInRange(0, 700),
    zjds: getRandomInRange(200, 650),
    zjry: getRandomInRange(200, 650),
    zyqds: getRandomInRange(200, 650),
    zyqry: getRandomInRange(200, 650),
    zyqzs: getRandomInRange(0, 700),
    pqw: [
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
    ],
    zcwd: [
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
      getRandomInRange(200, 650),
    ],
    clxds: getRandomInRange(200, 650),
    clxry: getRandomInRange(200, 650),
    wzwd: getRandomInRange(200, 650),
    wzzs: getRandomInRange(0, 700),
    djjs: getRandomInRange(0, 28),
  },
]);

// con2
export let CargoOilTanksData = ref([
  {
    cyjzs: getRandomInRange(200, 650),
    zjds: getRandomInRange(200, 650),
    zjry: getRandomInRange(200, 650),
    zyqds: getRandomInRange(200, 650),
  },
  {
    cyjzs: getRandomInRange(200, 650),
    zjds: getRandomInRange(200, 650),
    zjry: getRandomInRange(200, 650),
    zyqds: getRandomInRange(200, 650),
  },
  {
    cyjzs: getRandomInRange(200, 650),
    zjds: getRandomInRange(200, 650),
    zjry: getRandomInRange(200, 650),
    zyqds: getRandomInRange(200, 650),
  },
  {
    cyjzs: getRandomInRange(200, 650),
    zjds: getRandomInRange(200, 650),
    zjry: getRandomInRange(200, 650),
    zyqds: getRandomInRange(200, 650),
  },
  {
    cyjzs: getRandomInRange(200, 650),
    zjds: getRandomInRange(200, 650),
    zjry: getRandomInRange(200, 650),
    zyqds: getRandomInRange(200, 650),
  },
  {
    cyjzs: getRandomInRange(200, 650),
    zjds: getRandomInRange(200, 650),
    zjry: getRandomInRange(200, 650),
    zyqds: getRandomInRange(200, 650),
  },
  {
    cyjzs: getRandomInRange(200, 650),
    zjds: getRandomInRange(200, 650),
    zjry: getRandomInRange(200, 650),
    zyqds: getRandomInRange(200, 650),
  },
  {
    cyjzs: getRandomInRange(200, 650),
    zjds: getRandomInRange(200, 650),
    zjry: getRandomInRange(200, 650),
    zyqds: getRandomInRange(200, 650),
  },
  {
    cyjzs: getRandomInRange(200, 650),
    zjds: getRandomInRange(200, 650),
    zjry: getRandomInRange(200, 650),
    zyqds: getRandomInRange(200, 650),
  },
  {
    cyjzs: getRandomInRange(200, 650),
    zjds: getRandomInRange(200, 650),
    zjry: getRandomInRange(200, 650),
    zyqds: getRandomInRange(200, 650),
  },
  {
    cyjzs: getRandomInRange(200, 650),
    zjds: getRandomInRange(200, 650),
    zjry: getRandomInRange(200, 650),
    zyqds: getRandomInRange(200, 650),
  },
  {
    cyjzs: getRandomInRange(200, 650),
    zjds: getRandomInRange(200, 650),
    zjry: getRandomInRange(200, 650),
    zyqds: getRandomInRange(200, 650),
  },
]);

// con1 齿轮箱数据
export let GearboxData = ref({
  clxyw: {
    type: "齿轮箱油温",
    data: clxyw(),
    unit: "/℃",
    dl: 1,
  },
  clxyy: {
    type: "齿轮箱油压",
    data: clxyy(),
    unit: "/bar",
    dl: 2,
  },
  clxz: {
    type: "齿轮箱正",
    data: clxz(),
    unit: "/bar",
    dl: "2",
  },
  clxd: {
    type: "齿轮箱倒",
    data: clxd(),
    unit: "/bar",
    dl: "2",
  },
});

//con1 齿轮箱故障情况
export const GearboxFailure = (p) => {
  // 机器内部情况故障
  // 机器外部故障
};
//con1 发动机
// con1 主机数据
export let HostboxData = ref({
  zjhyyl: {
    type: "滑油压力",
    data: zjhyyl(),
    unit: "/bar",
    dl: 2,
  },
  zjlqsw: {
    type: "冷却水温",
    data: zjlqsw(),
    unit: "/℃",
    dl: 1,
  },
  zjrywd: {
    type: "滑油温度",
    data: zjrywd(),
    unit: "/℃",
    dl: 1,
  },
  zjzs: {
    type: "主机转速",
    data: zjzs(),
    unit: "r/min",
    dl: 0,
  },
});
// con1 数据
export const getEngieDate = (timer) => {
  timer.value = setInterval(() => {
    engieDate.value.forEach((item, i) => {
      for (const key in mockData) {
        if (Array.isArray(item[key])) {
          item[key].forEach((jitem, j) => {
            item[key][j] = mockData[key]();
          });
        } else {
          item[key] = mockData[key]();
        }
      }
    });
    CargoOilTanksData.value.forEach((item, i) => {
      for (const key in mockData) {
        if (Array.isArray(item[key])) {
          item[key].forEach((jitem, j) => {
            item[key][j] = mockData[key]();
          });
        } else {
          item[key] = mockData[key]();
        }
      }
    });
    // con1 齿轮箱数据
    for (const key in GearboxData.value) {
      GearboxData.value[key].data = mockData[key]();
    }
    // con1 主机数据
    for (const key in HostboxData.value) {
      HostboxData.value[key].data = mockData[key]();
    }
  }, 1000);
};
